home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 2
/
Deutsche Edition 2.iso
/
mac
/
PROGRAMME
/
MathReader 2.1 ƒ
/
MathReader
/
MathReader.rsrc
/
TEXT_287_PS header.txt
< prev
next >
Wrap
Text File
|
1993-03-01
|
10KB
|
1,135 lines
100 dict begin
/Mfixwid true def
/Mrot 0 def
/Mpstart {
MathPictureStart
} bind def
/Mpend {
MathPictureEnd
} bind def
/Mscale {
0 1 0 1
5 -1 roll
MathScale
} bind def
/Plain /Courier findfont def
/Bold /Courier-Bold findfont def
/Italic /Courier-Oblique findfont def
/MathPictureStart {
/Mimatrix
matrix currentmatrix
def
gsave
newpath
Mleft
Mbottom
translate
1 -1 scale
/Mtmatrix
matrix currentmatrix
def
Plain
Mfontsize scalefont
setfont
0 setgray
0 setlinewidth
} bind def
/MathPictureEnd {
grestore
} bind def
/MathSubStart {
Mgmatrix Mtmatrix
Mleft Mbottom
Mwidth Mheight
8 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
Mgmatrix setmatrix
10 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
2 copy translate
/Mtmatrix matrix currentmatrix def
/Mleft 0 def
/Mbottom 0 def
3 -1 roll
exch sub
/Mheight exch def
sub
/Mwidth exch def
} bind def
/MathSubEnd {
/Mheight exch def
/Mwidth exch def
/Mbottom exch def
/Mleft exch def
/Mtmatrix exch def
dup setmatrix
/Mgmatrix exch def
} bind def
/Mdot {
moveto
0 0 rlineto
stroke
} bind def
/Mtetra {
moveto
lineto
lineto
lineto
fill
} bind def
/Metetra {
moveto
lineto
lineto
lineto
closepath
gsave
fill
grestore
0 setgray
stroke
} bind def
/Mistroke {
flattenpath
0 0 0
{
4 2 roll
pop pop
}
{
4 -1 roll
2 index
sub dup mul
4 -1 roll
2 index
sub dup mul
add sqrt
4 -1 roll
add
3 1 roll
}
{
stop
}
{
stop
}
pathforall
pop pop
currentpoint
stroke
moveto
currentdash
3 -1 roll
add
setdash
} bind def
/Mfstroke {
stroke
currentdash
pop 0
setdash
} bind def
/Mrotsboxa {
gsave
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
grestore
Msboxa
3 -1 roll
/Mtmatrix
exch def
/Mrot
0 def
} bind def
/Msboxa {
newpath
5 -1 roll
Mvboxa
pop
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Msboxa1
5 -3 roll
Msboxa1
Mboxrot
[
7 -2 roll
2 copy
[
3 1 roll
10 -1 roll
9 -1 roll
]
6 1 roll
5 -2 roll
]
} bind def
/Msboxa1 {
sub
2 div
dup
2 index
1 add
mul
3 -1 roll
-1 add
3 -1 roll
mul
} bind def
/Mvboxa {
Mfixwid
{
Mvboxa1
}
{
dup
Mwidthcal
0 exch
{
add
}
forall
exch
Mvboxa1
4 index
7 -1 roll
add
4 -1 roll
pop
3 1 roll
}
ifelse
} bind def
/Mvboxa1 {
gsave
newpath
[ true
3 -1 roll
{
Mbbox
5 -1 roll
{
0
5 1 roll
}
{
7 -1 roll
exch sub
(m) stringwidth pop
.3 mul
sub
7 1 roll
6 -1 roll
4 -1 roll
Mmin
3 -1 roll
5 index
add
5 -1 roll
4 -1 roll
Mmax
4 -1 roll
}
ifelse
false
}
forall
{ stop } if
counttomark
1 add
4 roll
]
grestore
} bind def
/Mbbox {
0 0 moveto
false charpath
flattenpath
pathbbox
newpath
} bind def
/Mmin {
2 copy
gt
{ exch } if
pop
} bind def
/Mmax {
2 copy
lt
{ exch } if
pop
} bind def
/Mrotshowa {
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
Mgmatrix setmatrix
Mshowa
/Mtmatrix
exch def
/Mrot 0 def
} bind def
/Mshowa {
4 -2 roll
moveto
2 index
Mtmatrix setmatrix
Mvboxa
7 1 roll
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Mshowa1
4 1 roll
Mshowa1
rmoveto
currentpoint
Mfixwid
{
Mshowax
}
{
Mshoway
}
ifelse
pop pop pop pop
Mgmatrix setmatrix
} bind def
/Mshowax {
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
show
} for
} bind def
/Mshoway {
3 index
Mwidthcal
5 1 roll
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
[
6 index
aload
length
2 add
-1 roll
{
pop
Strform
stringwidth
pop
neg
exch
add
0 rmoveto
}
exch
kshow
cleartomark
} for
pop
} bind def
/Mwidthcal {
[
exch
{
Mwidthcal1
}
forall
]
[
exch
dup
Maxlen
-1 add
0 1
3 -1 roll
{
[
exch
2 index
{
1 index
Mget
exch
}
forall
pop
Maxget
exch
}
for
pop
]
Mreva
} bind def
/Mreva {
[
exch
aload
length
-1 1
{1 roll}
for
]
} bind def
/Mget {
1 index
length
-1 add
1 index
ge
{
get
}
{
pop pop
0
}
ifelse
} bind def
/Maxlen {
[
exch
{
length
}
forall
Maxget
} bind def
/Maxget {
counttomark
-1 add
1 1
3 -1 roll
{
pop
Mmax
}
for
exch
pop
} bind def
/Mwidthcal1 {
[
exch
{
Strform
stringwidth
pop
}
forall
]
} bind def
/Strform {
/tem (x) def
tem 0
3 -1 roll
put
tem
} bind def
/Mshowa1 {
2 copy
add
4 1 roll
sub
mul
sub
-2 div
} bind def
/MathScale {
Mwidth
Mheight
Mlp
translate
scale
pop pop pop pop
/Mgmatrix
matrix currentmatrix
def
} bind def
/Mlp {
3 copy
Mlpfirst
{
Mnodistort
{
Mmin
dup
} if
4 index
2 index
2 index
Mlprun
11 index
11 -1 roll
10 -4 roll
Mlp1
8 index
9 -5 roll
Mlp1
4 -1 roll
and
{ exit } if
3 -1 roll
pop pop
} loop
exch
3 1 roll
7 -3 roll
pop pop pop
} bind def
/Mlpfirst {
3 -1 roll
dup length
2 copy
-2 add
get
aload
pop pop pop
4 -2 roll
-1 add
get
aload
pop pop pop
6 -1 roll
3 -1 roll
5 -1 roll
sub
div
4 1 roll
exch sub
div
} bind def
/Mlprun {
2 copy
4 index
0 get
dup
4 1 roll
Mlprun1
3 copy
8 -2 roll
9 -1 roll
{
3 copy
Mlprun1
3 copy
11 -3 roll
/gt Mlpminmax
8 3 roll
11 -3 roll
/lt Mlpminmax
8 3 roll
} forall
pop pop pop pop
3 1 roll
pop pop
aload pop
5 -1 roll
aload pop
exch
6 -1 roll
Mlprun2
8 2 roll
4 -1 roll
Mlprun2
6 2 roll
3 -1 roll
Mlprun2
4 2 roll
exch
Mlprun2
6 2 roll
} bind def
/Mlprun1 {
aload pop
exch
6 -1 roll
5 -1 roll
mul add
4 -2 roll
mul
3 -1 roll
add
} bind def
/Mlprun2 {
2 copy
add 2 div
3 1 roll
exch sub
} bind def
/Mlpminmax {
cvx
2 index
6 index
2 index
exec
{
7 -3 roll
4 -1 roll
} if
1 index
5 index
3 -1 roll
exec
{
4 1 roll
pop
5 -1 roll
aload
pop pop
4 -1 roll
aload pop
[
8 -2 roll
pop
5 -2 roll
pop
6 -2 roll
pop
5 -1 roll
]
4 1 roll
pop
}
{
pop pop pop
} ifelse
} bind def
/Mlp1 {
5 index
3 index sub
5 index
2 index mul
1 index
le
1 index
0 le
or
dup
not
{
1 index
3 index div
.99999 mul
8 -1 roll
pop
7 1 roll
}
if
8 -1 roll
2 div
7 -2 roll
pop sub
5 index
6 -3 roll
pop pop
mul sub
exch
} bind def
/intop 0 def
/inrht 0 def
/inflag 0 def
/outflag 0 def
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
/Minner {
outflag
1
eq
{
/outflag 0 def
/intop 0 def
/inrht 0 def
} if
5 index
gsave
Mtmatrix setmatrix
Mvboxa pop
grestore
3 -1 roll
pop
dup
intop
gt
{
/intop
exch def
}
{ pop }
ifelse
dup
inrht
gt
{
/inrht
exch def
}
{ pop }
ifelse
pop
/inflag
1 def
} bind def
/Mouter {
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
inflag
1 eq
{
dup
0 lt
{
dup
intop
mul
neg
/yadtop
exch def
} if
dup
0 gt
{
dup
intop
mul
/yadbot
exch def
}
if
pop
dup
0 lt
{
dup
inrht
mul
neg
/xadrht
exch def
} if
dup
0 gt
{
dup
inrht
mul
/xadlft
exch def
} if
pop
/outflag 1 def
}
{ pop pop}
ifelse
/inflag 0 def
/inrht 0 def
/intop 0 def
} bind def
/Mboxout {
outflag
1
eq
{
4 -1
roll
xadlft
leadjust
add
sub
4 1 roll
3 -1
roll
yadbot
leadjust
add
sub
3 1
roll
exch
xadrht
leadjust
add
add
exch
yadtop
leadjust
add
add
/outflag 0 def
/xadlft 0 def
/yadbot 0 def
/xadrht 0 def
/yadtop 0 def
} if
} bind def
/leadjust {
(m) stringwidth pop
.5 mul
} bind def
/Mrotcheck {
dup
90
eq
{
yadbot
/yadbot
xadrht
def
/xadrht
yadtop
def
/yadtop
xadlft
def
/xadlft
exch
def
}
if
dup
cos
1 index
sin
Checkaux
dup
cos
1 index
sin neg
exch
Checkaux
3 1 roll
pop pop
} bind def
/Checkaux {
4 index
exch
4 index
mul
3 1 roll
mul add
4 1 roll
} bind def
/Mboxrot {
Mrot
90 eq
{
brotaux
4 2
roll
}
if
Mrot
180 eq
{
4 2
roll
brotaux
4 2
roll
brotaux
}
if
Mrot
270 eq
{
4 2
roll
brotaux
}
if
} bind def
/brotaux {
neg
exch
neg
} bind def
/Mabsproc {
0
matrix defaultmatrix
dtransform idtransform
dup mul exch
dup mul
add sqrt
} bind def
/Mabswid {
Mabsproc
setlinewidth
} bind def
/Mabsdash {
exch
[
exch
{
Mabsproc
}
forall
]
exch
setdash
} bind def
/colorimage where
{ pop }
{
/colorimage {
3 1 roll
pop pop
5 -1 roll
mul
4 1 roll
{
currentfile
1 index
readhexstring
pop }
image
} bind def
} ifelse
/sampledsound where
{ pop}
{ /sampledsound {
exch
pop
exch
5 1 roll
mul
4 idiv
mul
2 idiv
exch pop
exch
/Mtempproc exch def
{ Mtempproc pop }
repeat
} bind def
} ifelse
% Here are the short operators
/g { setgray} bind def
/k { setcmykcolor} bind def
/m { moveto} bind def
/p { gsave} bind def
/r { setrgbcolor} bind def
/w { setlinewidth} bind def
/C { curveto} bind def
/F { fill} bind def
/L { lineto} bind def
/P { grestore} bind def
/s { stroke} bind def
/MFill {
0 0 moveto
Mwidth 0 lineto
Mwidth Mheight lineto
0 Mheight lineto
fill
} bind def
/MPlotRegion {
3 index
Mwidth mul
2 index
Mheight mul
translate
exch sub
Mheight mul
/Mheight
exch def
exch sub
Mwidth mul
/Mwidth
exch def
} bind def
/Mcharproc
{
currentfile
(x)
readhexstring
pop
0 get
exch
div
} bind def
/Mshadeproc
{
dup
3 1
roll
{
dup
Mcharproc
3 1
roll
} repeat
1 eq
{
setgray
}
{
3 eq
{
setrgbcolor
}
{
setcmykcolor
} ifelse
} ifelse
} bind def
/Mrectproc
{
3 index
2 index
moveto
2 index
3 -1
roll
lineto
dup
3 1
roll
lineto
lineto
fill
} bind def
/Mcolorimage
{
7 1
roll
pop
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
9 index
Mshadeproc
Mrectproc
} for
pop
} for
pop pop pop pop
} bind def
/Mimage
{
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
Mcharproc
setgray
Mrectproc
} for
pop
} for
pop pop pop
} bind def